//@ sourceURL=role.js
//此js文件到底要做什么
var roleId;
$(function(){
	//没有模糊条件的第一页
	findRolesByPage(1);
	//给模糊搜索的按钮添加click事件
	$("#rolePanel .row button").click(function(){
		findRolesByPage(1);
	});
	//给添加按钮的表单注册submit事件
	$("#addPanel form").submit(function(){
		return addRole();//一定要return false
	});
	//给删除modal框中的确认按钮添加click事件
	$(".bs-example-modal-sm button:eq(1)").on("click",function(){
		deleteRole();
	});
	//给删除的modal框的隐藏后注册事件
	$('.bs-example-modal-sm').on('hidden.bs.modal', function (e) {
	    alert("哈哈,删除的modal框隐藏完毕");
	});
	//给修改的modal框中的表单添加submit事件
	$("#editRole form").submit(function(){
		return updateRole();
	});
});
//更新角色
function updateRole(){
	var newRoleName=$("#editRole form input[type=text]").val();
	//发送ajax异步请求
	$.ajax({
		url:basePath+"updaterole.do",
		type:"post",
		data:{
			"roleId":roleId,
			"roleName":newRoleName
		},
		dataType:"json",		
		success:function(result){
			if(result.status==1){
				//更新数据成功
				alert(result.message);
				//更改页面中行中角色名称中的值
				$("#"+roleId).find("td:eq(2)").html(newRoleName);
				//关闭更行的modal框
				$("#editRole").modal("toggle");
				
			}else if(result.status==0){
				alert(result.message);
			}
		},
		error:function(){
			alert("请求失败!!");
		}		
	});
	return false;
}
function updateClick(id){
	roleId=id;
	//alert(roleId);
	//把旧值放在文本框中
	var oldRoleName=$("#"+roleId).find("td:eq(2)").text();
	//alert(oldRoleName)
	$("#editRole form input[type=text]").val(oldRoleName);
}
//添加角色
function addRole(){
	//获取用户填入的新的角色名称
	var newRoleName=$("#addPanel form input[type=text]").val();
	//发送ajax异步请求
	$.ajax({
		url:basePath+"addrole.do",
		type:"post",
		data:{
			"newRoleName":newRoleName
		},
		dataType:"json",
		success:function(result){
			alert(result.message);
		},
		error:function(){
			alert("请求失败!!");
		}
	});
	return false;
}
function deleteClick(id){
	roleId=id;
}
//删除角色方法
function deleteRole(){
	alert(roleId);
	//发送ajax异步请求删除指定roleid的记录,roleid已经被保留到全局变量roleId中
	$.ajax({
		url:basePath+"deleterole.do",
		type:"post",
		data:{"roleId":roleId},
		dataType:"json",
		success:function(result){
			if(result.status==1){
				//删除数据成功了
				//删除页面中那个tr行
				$("#"+roleId).remove();
				//把页面上的删除modal框去掉
				$(".bs-example-modal-sm").modal('hide');
			}else if(result.status==0){
				alert(result.message);
			}
		},
		error:function(){
			alert("请求失败!!");
		}
	});
}
//分页+模糊查询
function findRolesByPage(currentPage){
	//无论是否有模糊关键字,都要获取模糊关键字
	var rolekeyword=$("#rolePanel .row input[type=text]").val();
	
	if(rolekeyword==""){
		rolekeyword="nochar";
	}
	//alert(currentPage+"   "+rolekeyword);
	$.ajax({
		url:basePath+"findrolesbypage.do",
		type:"get",
		data:{
			"currentPage":currentPage,
			"rolekeyword":rolekeyword
		},
		dataType:"json",
		success:function(result){
			//readyState==4  and status==200
			//result就是json对象
			if(result.status==1){
				//查询成功,从result中获取到数据
				var page=result.data;
				var roles=page.data;
				//把获取到的数据dom编程,刷新数据到网页的局部
				//给表格中tbody中填入数据库数据
				$("#rolePanel table tbody").html("");
				//循环遍历roles取出role对象,没一个role对象对应一个tr
				$(roles).each(function(index,role){
					if(role.name!='讲师' && role.name!='学员' && role.name!='超级管理员'){
						//应该带有  删除 和  编辑的超链接
						var tr='<tr id="'+role.id+'">'+
					              '<td>'+(index+1)+'</td>'+
					              '<td>'+role.id+'</td>'+
					              '<td>'+role.name+'</td>'+
					              '<td>'+
					                '<a onclick="updateClick(\''+role.id+'\')" href="#" data-toggle="modal" data-target="#editRole" ><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>编辑</a>'+
					                '<a onclick="deleteClick(\''+role.id+'\')" href="#" data-toggle="modal" data-target=".bs-example-modal-sm"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>删除</a>'+
					              '</td>'+
					            '</tr>';
						$("#rolePanel table tbody").append(tr);
					}else{
						//不带有删除和编辑的超链接
						var tr=`<tr id="${role.id}">
					              <td>${index+1}</td>
					              <td>${role.id}</td>
					              <td>${role.name}</td>
					              <td>
					              </td>
					            </tr>`;
						$("#rolePanel table tbody").append(tr);
					}	
				});			
				//处理bootstrap分页条
				$("#rolePanel .pagination").html("");
				if(page.aNum.length>1){
					//需要显示分页条
					//处理前一页
					var previouspage=`<li>
							          <a href="javascript:findRolesByPage(${page.previousPage})" aria-label="Previous">
							            <span aria-hidden="true">&laquo;</span>
							          </a>
							        </li>`;
					$("#rolePanel .pagination").append(previouspage);
					//处理中间的超链接
					$(page.aNum).each(function(i,value){
						if(currentPage==value){
							var middlepage=`<li class="active"><a href="javascript:findRolesByPage(${value})">${value}</a></li>`;
						    $("#rolePanel .pagination").append(middlepage);
						}else{
							var middlepage=`<li><a href="javascript:findRolesByPage(${value})">${value}</a></li>`;
							$("#rolePanel .pagination").append(middlepage);
						}
						
					});
					//处理后一页
					var nextpage=`<li>
						          <a href="javascript:findRolesByPage(${page.nextPage})" aria-label="Next">
						            <span aria-hidden="true">&raquo;</span>
						          </a>
						        </li>`;
					$("#rolePanel .pagination").append(nextpage);
				}
				
			}else if(result.status==0){
				alert(result.message)
			}
		},
		error:function(){
			alert("请求失败!!");
		}
	});
}